﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

namespace DataObjects
{
    public class Venda : INotifyPropertyChanged
    {
        private int _Id;

        public int Id
        {
            get { return _Id; }
            set { _Id = value; }
        }

        private int _IdVendedor;

        public int IdVendedor
        {
            get { return _IdVendedor; }
            set { _IdVendedor = value; }
        }

        private int _IdCorretor;

        public int IdCorretor
        {
            get { return _IdCorretor; }
            set { _IdCorretor = value; }
        }

        private int _IdCliente;

        public int IdCliente
        {
            get { return _IdCliente; }
            set { _IdCliente = value; }
        }

        private Vendedor _Vendedor;

        internal Vendedor Vendedor
        {
            get { return _Vendedor; }
            set { _Vendedor = value; }
        }

        private Cliente _Cliente;

        internal Cliente Cliente
        {
            get { return _Cliente; }
            set { _Cliente = value; }
        }

        private Corretor _Corretor;

        internal Corretor Corretor
        {
            get { return _Corretor; }
            set { _Corretor = value; }
        }

        private decimal? _VlrComissaoCorretor;

        public decimal? VlrComissaoCorretor
        {
            get { return _VlrComissaoCorretor; }
            set { _VlrComissaoCorretor = value; }
        }

        private string _FormaPagtoComissaoCorretor;

        public string FormaPagtoComissaoCorretor
        {
            get { return _FormaPagtoComissaoCorretor; }
            set { _FormaPagtoComissaoCorretor = value; }
        }

        private DateTime? _DtCompra;

        public DateTime? DtCompra
        {
            get { return _DtCompra; }
            set { _DtCompra = value; }
        }

        private decimal? _VlrCompra;

        public decimal? VlrCompra
        {
            get { return _VlrCompra; }
            set { _VlrCompra = value; }
        }

        private decimal? _VlrEspecie;

        public decimal? VlrEspecie
        {
            get { return _VlrEspecie; }
            set { _VlrEspecie = value; }
        }

        private decimal? _VlrCartao;

        public decimal? VlrCartao
        {
            get { return _VlrCartao; }
            set { _VlrCartao = value; }
        }

        private int? _QtdeVezesCartao;

        public int? QtdeVezesCartao
        {
            get { return _QtdeVezesCartao; }
            set { _QtdeVezesCartao = value; }
        }

        private DateTime? _DtPrimParcelaCartao;

        public DateTime? DtPrimParcelaCartao
        {
            get { return _DtPrimParcelaCartao; }
            set { _DtPrimParcelaCartao = value; }
        }

        private decimal? _VlrCheque;

        public decimal? VlrCheque
        {
            get { return _VlrCheque; }
            set { _VlrCheque = value; }
        }

        private decimal? _VlrTransfBancaria1;

        public decimal? VlrTransfBancaria1
        {
            get { return _VlrTransfBancaria1; }
            set { _VlrTransfBancaria1 = value; }
        }

        private decimal? _VlrTransfBancaria2;

        public decimal? VlrTransfBancaria2
        {
            get { return _VlrTransfBancaria2; }
            set { _VlrTransfBancaria2 = value; }
        }

        private decimal? _SaldoPagar;

        public decimal? SaldoPagar
        {
            get { return _SaldoPagar; }
            set { _SaldoPagar = value; }
        }

        private decimal? _SaldoDescontar;

        public decimal? SaldoDescontar
        {
            get { return _SaldoDescontar; }
            set { _SaldoDescontar = value; }
        }

        private decimal? _ValorMultas;

        public decimal? ValorMultas
        {
            get { return _ValorMultas; }
            set { _ValorMultas = value; }
        }

        private string _ClassificacaoMultas;

        public string ClassificacaoMultas
        {
            get { return _ClassificacaoMultas; }
            set { _ClassificacaoMultas = value; }
        }

        private int? _Gravame;

        public int? Gravame
        {
            get { return _Gravame; }
            set { _Gravame = value; }
        }

        private string _BancoGravame;

        public string BancoGravame
        {
            get { return _BancoGravame; }
            set { _BancoGravame = value; }
        }

        private decimal? _SaldoQuitacao;

        public decimal? SaldoQuitacao
        {
            get { return _SaldoQuitacao; }
            set { _SaldoQuitacao = value; }
        }

        private DateTime? _DtSaldo;

        public DateTime? DtSaldo
        {
            get { return _DtSaldo; }
            set { _DtSaldo = value; }
        }

        private string _ClassificacaoGravame;

        public string ClassificacaoGravame
        {
            get { return _ClassificacaoGravame; }
            set { _ClassificacaoGravame = value; }
        }

        private DateTime? _LicenciamentoMes;

        public DateTime? LicenciamentoMes
        {
            get { return _LicenciamentoMes; }
            set { _LicenciamentoMes = value; }
        }

        private decimal? _VlrLicenciamento;

        public decimal? VlrLicenciamento
        {
            get { return _VlrLicenciamento; }
            set { _VlrLicenciamento = value; }
        }

        private List<FormaPagamento> FormasPagamento;

        internal List<FormaPagamento> FormasPagamento1
        {
            get { return FormasPagamento; }
            set { FormasPagamento = value; }
        }

        private List<Veiculo> veiculos;

        internal List<Veiculo> Veiculos
        {
            get { return veiculos; }
            set { veiculos = value; }
        }

        #region INotifyPropertyChanged Members

        public event PropertyChangedEventHandler PropertyChanged;

        private void NotifyPropertyChanged(string name)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(name));
        }

        #endregion

    }
}
